package com.bookstore.Domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor//生成一个包含所有成员变量的构造函数
@NoArgsConstructor//生成一个无参数的构造函数
public class Person {
    /**
     * 主键生成策略：AUTO：先获取数据库的最后一位的id值，再在基础上自增
     * IdType.NONE：表示主键不设置，让数据库自动生成。
     * IdType.ID_WORKER：表示使用工作空间ID作为主键。
     */
    @TableId(type = IdType.NONE)
    private int id;
    private String name;

    /**
     * 设置自动填充：sql语句
     */
    @TableField(fill = FieldFill.INSERT)
    private Date gmt_create;
    /**
     * 修改时间：修改数据的时候,看得到，映射不会生效***
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmt_modified;
    /**
     * 乐观锁Version注解：里面使用自动递增实现，看得到，映射不会生效***
     */
    @Version
    private Integer version;
    /**
     * 逻辑删除： UPDATE user SET deleted=1 WHERE name = ? AND deleted=0
     * 查询的时候会自动过滤删除过的字段***
     */
    @TableLogic
    private Integer deleted;

}
